#include <iostream>
using namespace std;

#include "Graph.h"
#include "Edge.h"

int main() {

	Node n1(2), n2(1), n3(3), n4(-5), n5(10);
	Edge e1(n1, n2), e2(n3, n2), e3(n2, n1), e4(n1, n4), e5(n2, n5);
	Graph graph1;
	graph1 += e1;
	graph1 += e2;
	//cout << "printing graph: " << graph1 << endl;
	graph1 += e3;
	graph1 += e4;
	graph1 += e5;
	cout << "printing graph: " << graph1 << endl;

//	Node node1(1), node2(2), node3(3), node4(4);
//	Node node5(-123);
//	Graph graph1;
//	Edge edge1(node1, node2);
//	graph1 += edge1;
//	cout << "enter graph" << endl;
//	cin >> graph1;
//	cout << "printing graph" << endl;
//	cout << graph1 << endl;

//	string str = node5.toString();
//	cout << str << endl;
//	Edge edge1(node1, node2);
//	Edge edge2(node3, node4);
//	graph1 += edge2;
//	Graph graph2 = -graph1;
//	cout << "trying index operator:" << endl;
//	cout << graph1[4] << endl;
//	cout << "printing completing graph:" << endl;
//	cout << -graph1 << endl;
//	Graph graph2 = graph1+edge2;
//	Graph graph3 = graph1 && graph2;
//	cout << graph3 << endl;
//	graph1 += edge1;
//	cout << graph1 << endl;
//	Graph graph2;
//	graph2 += edge2;
//	graph2 += graph1;
//	cout << graph2 << endl;
//	cout << graph1 - edge1 << endl;
//	graph1 = graph1 - edge1;
//	cout << graph1 << endl;
	return 0;
}
